﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, GeneratedCode("svcutil", "3.0.4506.2152"), DesignerCategory("code"), XmlType(Namespace="http://www.onvif.org/ver10/schema"), DebuggerStepThrough]
    public class MetadataConfiguration : ConfigurationEntity
    {
        private TestTool.Proxies.Onvif.AnalyticsEngineConfiguration analyticsEngineConfigurationField;
        private bool analyticsField;
        private bool analyticsFieldSpecified;
        private XmlAttribute[] anyAttrField;
        private XmlElement[] anyField;
        private EventSubscription eventsField;
        private MetadataConfigurationExtension extensionField;
        private MulticastConfiguration multicastField;
        private PTZFilter pTZStatusField;
        private string sessionTimeoutField;

        [XmlElement(Order=2)]
        public bool Analytics
        {
            get
            {
                return this.analyticsField;
            }
            set
            {
                this.analyticsField = value;
            }
        }

        [XmlElement(Order=6)]
        public TestTool.Proxies.Onvif.AnalyticsEngineConfiguration AnalyticsEngineConfiguration
        {
            get
            {
                return this.analyticsEngineConfigurationField;
            }
            set
            {
                this.analyticsEngineConfigurationField = value;
            }
        }

        [XmlIgnore]
        public bool AnalyticsSpecified
        {
            get
            {
                return this.analyticsFieldSpecified;
            }
            set
            {
                this.analyticsFieldSpecified = value;
            }
        }

        [XmlAnyElement(Order=5)]
        public XmlElement[] Any
        {
            get
            {
                return this.anyField;
            }
            set
            {
                this.anyField = value;
            }
        }

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=1)]
        public EventSubscription Events
        {
            get
            {
                return this.eventsField;
            }
            set
            {
                this.eventsField = value;
            }
        }

        [XmlElement(Order=7)]
        public MetadataConfigurationExtension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement(Order=3)]
        public MulticastConfiguration Multicast
        {
            get
            {
                return this.multicastField;
            }
            set
            {
                this.multicastField = value;
            }
        }

        [XmlElement(Order=0)]
        public PTZFilter PTZStatus
        {
            get
            {
                return this.pTZStatusField;
            }
            set
            {
                this.pTZStatusField = value;
            }
        }

        [XmlElement(DataType="duration", Order=4)]
        public string SessionTimeout
        {
            get
            {
                return this.sessionTimeoutField;
            }
            set
            {
                this.sessionTimeoutField = value;
            }
        }
    }
}

